package com.uraurora.crescent.advanced.tree;

/**
 * 字典树接口，统计以某个字符串为前缀的字符串个数
 */
public interface ITrie {

    /**
     * 添加字符串到树
     * @param str 需要添加的字符串
     */
    void add(String str);

    /**
     * 添加字符数组到树
     * @param str 需要添加的字符数组
     */
    void add(char[] str);

    /**
     * 获取以某字符串为前缀的字符串数目
     * @param str 前缀字符串
     * @return 以输入字符串为前缀的字符串数目
     */
    int numByPrefix(String str);

    /**
     * 是否包含指定字符串
     * @param str 指定的字符串
     * @return 是否包含
     */
    boolean contains(String str);

    /**
     * 获取以某字符数组为前缀的字符串数目
     * @param str 前缀字符数组
     * @return 以输入字符数组为前缀的字符串数目
     */
    int numByPrefix(char[] str);


}
